﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        public class robot
        {
            public robot(int x, int y, ConsoleColor color)
            {
                _x = x;
                _y = y;
                _color = color;
            }
            public int _x;
            public int _y;
            public int _lastPrintedX;
            public int _lastPrintedY;
            public bool _hasBeenPrinted;
            public ConsoleColor _color;
            public List<int[,]> Memory = new List<int[,]>();

            public void MoveLeft(int interval)
            {
                _x -= interval;

                //_x = Math.Max(_x, 0);
            }
            public void MoveRight(int interval)
            {
                _x += interval;

                //_x = Math.Min(_x, Console.BufferWidth - 1);
            }
            public void MoveTop(int interval)
            {
                _y -= interval;

                //_y = Math.Max(_y, 0);
            }
            public void MoveBottom(int interval)
            {
                _y += interval;

                //_y = Math.Min(_y, Console.BufferHeight - 1);
            }
            public void PrintRobot()
            {
                if (_hasBeenPrinted)
                {
                    //clear previous position
                    Console.SetCursorPosition(_lastPrintedX, _lastPrintedY);
                    Console.ResetColor();
                    Console.Write(" ");
                }
                Console.SetCursorPosition(_x, _y);

                Console.ForegroundColor = _color;
                Console.Write("#");
                _lastPrintedX = _x;
                _lastPrintedY = _y;
                int[,] s1 = { { _lastPrintedX, _lastPrintedY } };

                Memory.Add(s1);

                _hasBeenPrinted = true;
            }
            //public void DoStep()
            //{
            //    Random rnd = new Random();

            //    for (int i = 0; i < 100; )
            //    {
            //        int m = rnd.Next(0, 4);
            //        
            //        if (m == 1)
            //        {
            //            if (((List<int[,]>)Memory).Contains(_x, _y))
            //                break;
            //            else
            //            {
            //                MoveLeft(1);
            //            }

            //        }
            //        else if (m == 2)
            //        {
            //            if ()
            //                break;
            //            else
            //                MoveBottom(1);

            //        }
            //        else if (m == 3)
            //        {
            //            if ()
            //                break;
            //            else
            //                MoveRight(1);

            //        }
            //        else
            //        {
            //            MoveTop(1);

            //        }
            //        PrintRobot();
            //    }
            public void DoStep()
        {
            return null;

        }

            }
        }
    }
}
